From: Florian Müllner Date: Mon, 9 Oct 2017 10:53:04 +0000 (+0200) Subject: keyboard: Don't pop up on touch events X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~994^2^2~112 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=705915cd31771d45eac63eb54b5ea952a95a9e2e;p=gnome-shell.git keyboard: Don't pop up on touch events We want touch events to enable the keyboard and focus tracking, but not to actually show it right away. Implement that behavior by only changing the visibility of the keyboard when triggered by a GSettings change. https://bugzilla.gnome.org/show_bug.cgi?id=788188 --- diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js index 771f23dc2..1a251b582 100644 --- a/js/ui/keyboard.js +++ b/js/ui/keyboard.js @@ -308,6 +308,7 @@ var Keyboard = new Lang.Class({ }, _syncEnabled: function () { + let wasEnabled = this._enableKeyboard; this._enableKeyboard = this._a11yApplicationsSettings.get_boolean(SHOW_KEYBOARD); this._enabled = this._enableKeyboard || this._lastDeviceIsTouchscreen(); if (!this._enabled && !this._keyboard) @@ -315,14 +316,13 @@ var Keyboard = new Lang.Class({ this._setCaretTrackerEnabled(this._enabled); - if (this._enabled) { - if (!this._keyboard) - this._setupKeyboard(); - else - Main.layoutManager.showKeyboard(); - } else { + if (this._enabled && !this._keyboard) + this._setupKeyboard(); + + if (this._enableKeyboard && !wasEnabled) + Main.layoutManager.showKeyboard(); + else if (!this._enableKeyboard && wasEnabled) Main.layoutManager.hideKeyboard(true); - } }, _sync: function () {